import pandas as pd
from datetime import datetime
import re

# 读取Excel文件
file_path = 'E:\\pythonProject\\python\\python\\com\\zsw\\设备查询结果.xlsx'  # 替换为你的文件路径
df = pd.read_excel(file_path)

# 获取当前日期
current_date = datetime.now()
# 当前年份的上限
max_year = 2025
min_year = 1973
# 处理第二列和第三列
for col in ['上市时间', '停售时间']:
    def process_value(value):
        try:
            # 转为字符串以便正则匹配
            value_str = str(value)

            # 使用正则提取年份
            if(value_str.__contains__("年")):
                match = re.search(r'(\d{4})', value_str)  # 匹配四位数字年份
                if match:
                    year = int(match.group(1))
                    # 如果年份大于 2025，则返回空值
                    if year > max_year or year <min_year:
                        return '未知'

            # 如果值是日期格式的数字（例如 Excel 的序列值），尝试处理
            if isinstance(value, (int, float)):
                # 转换为日期
                date_value = pd.to_datetime(value, origin='1899-12-30', unit='D')
                year = date_value.year
                if year > max_year:
                    return None
                return date_value.strftime('%Y年%m月%d日')
            return value
        except Exception as e:
            # 如果发生异常，保留原值
            return value

    # 应用到对应的列
    df[col] = df[col].apply(process_value)

    # 应用到对应的列
    df[col] = df[col].apply(process_value)


# 保存修改后的Excel文件
output_path = 'modified_excel_file.xlsx'  # 替换为输出文件路径
df.to_excel(output_path, index=False)
print(f"文件已保存到 {output_path}")
